package com.alks.function.mapper.biocontrol.factoryQuery;

import com.alks.entity.data.entity.PcCuttingDailyReport;
import com.alks.function.data.dto.biocontrol.factoryQuery.DailyReportDetailDto;
import com.alks.function.data.dto.biocontrol.factoryQuery.StkAccDto;
import com.alks.function.data.request.biocontrol.factoryQuery.StkAccRequest;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;

import java.time.LocalDate;
import java.time.LocalDateTime;
import java.util.List;
import java.util.Map;

/**
 * <p>
 *  Mapper 接口
 * </p>
 *
 * @author ms
 * @since 2024-11-07
 */

public interface PcCuttingDailyReportMapper extends BaseMapper<PcCuttingDailyReport> {

    /**
     * 库存账目查询
     *
     * @param request 查询条件
     * @return 库存账目数据
     */
    List<StkAccDto> tempQuery(@Param("request") StkAccRequest request);

    /**
     * 库存账目求和数据
     * @param request 查询条件
     * @return 求和数据
     */
    Map<String, Object> tempSumQuery(@Param("request") StkAccRequest request);

    /**
     * 删除指定日期数据
     * @param companyId 公司ID
     * @param ddate 日期
     */
    void deleteByDate(@Param("companyId") String companyId, @Param("ddate") LocalDate ddate);

    /**
     * 强制更新库存账目
     *
     * @param companyId 公司ID
     * @param now
     */
    void forcedUp(@Param("companyId") String companyId, @Param("now") LocalDate now);

    /**
     * 排查问题用查询SQL
     * @param companyId
     * @param now
     * @return
     */
    List<PcCuttingDailyReport> forcedQuery(@Param("companyId") String companyId, @Param("now") LocalDate now);

    /**
     * 查询日生产明细
     */
    List<DailyReportDetailDto> getDailyProdDetail(@Param("companyId") String companyId, @Param("processCode") String processCode, @Param("date") LocalDateTime date);
}
